//该函数接收一个时间戳，计算其与当前时间的差值，并根据差值范围返回相应的格式化字符串
export function formatTimeDifference(timestamp) {
    // 确保传入的是数字类型
    if (typeof timestamp !== 'number' || isNaN(timestamp)) {
        return null;
    }
    
    // 获取当前时间的时间戳（毫秒）
    const now = Date.now();
    
    // 计算时间差（毫秒）
    const diffMs = now - timestamp;
    
    // 如果时间差为负（传入的时间在未来），返回null
    if (diffMs < 0) {
        return null;
    }
    
    // 转换为不同单位
    const diffSeconds = Math.floor(diffMs / 1000);
    const diffMinutes = Math.floor(diffSeconds / 60);
    const diffHours = Math.floor(diffMinutes / 60);
    const diffDays = Math.floor(diffHours / 24);
    
    // 计算月份差（简化版，实际月份天数不同）
    const nowDate = new Date(now);
    const inputDate = new Date(timestamp);
    
    let diffMonths = (nowDate.getFullYear() - inputDate.getFullYear()) * 12;
    diffMonths += nowDate.getMonth() - inputDate.getMonth();
	
	// 格式化日期为 YYYY-MM-DD（用于超过3个月的情况）
	 const formatDate = (date) => {
	    const year = date.getFullYear();
	    const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份从0开始，补零
	    const day = String(date.getDate()).padStart(2, '0'); // 日期补零
	    return `${year}-${month}-${day}`;
	};
    
    // 根据不同范围返回结果
    if (diffSeconds < 60) {
        return '1分钟前';
    } else if (diffMinutes < 60) {
        return `${diffMinutes}分钟前`;
    } else if (diffHours < 24) {
        return `${diffHours}小时前`;
    } else if (diffDays < 30) {
        return `${diffDays}天前`;
    } else if (diffMonths <= 3) {
        return `${diffMonths}月前`;
    } else {
        return `${formatDate(inputDate)}`;
    }
}

